package cn.tedu.serializable;

import java.io.Serializable;

/**本类用于复习封装学生类*/
/**如果本类的对象想要被序列化输出，必须实现可序列化接口Serializable，否则报错
 * Serializable接口是一个空接口，里面一个方法也没有，作用是用来当做标记
 * 标志当前这个类的对象可以被序列化*/
public class Student implements Serializable {
    /**我们也可以手动将序列化版本号写成一个固定值
     * 但是我们一般不会将UID写死，一般都使用默认存在的UID
     * 这样，如果Student类发生更改*/
    private static final long serivalVersionUID = 1L;
    public static void main(String[] args) {

    }
    private String name;
    private int age;
    private String addr;
    private char gender;
    public Student(){
        System.out.println("我是无参构造");
    }

    public Student(String name, int age, String addr, char gender) {
        this.name = name;
        this.age = age;
        this.addr = addr;
        this.gender = gender;
        System.out.println("我是全参构造");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }
    /**如果不想使用Object中toString()的默认实现(打印的是对象的地址值)
     * 而是想要查看自定义对象的类型+属性+属性值，可以重写toString()*/
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", addr='" + addr + '\'' +
                ", gender=" + gender +
                '}';
    }
}

